<?php
// 后端Node.js API地址配置
define('API_BASE_URL', 'http://localhost:3000');
define('API_SEND_PUBLIC', API_BASE_URL . '/send_public');

// 文件存储路径
define('DATA_DIR', realpath(__DIR__ . '/../data'));
define('KFS_FILE', DATA_DIR . '/kfs.json');
define('KFLY_FILE', DATA_DIR . '/kfly.json');
define('KFIT_FILE', DATA_DIR . '/kfit.json');

// 确保数据目录存在
if (!is_dir(DATA_DIR)) {
    mkdir(DATA_DIR, 0755, true);
}

// 确保文件存在
$files = [KFS_FILE, KFLY_FILE, KFIT_FILE];
foreach ($files as $file) {
    if (!file_exists($file)) {
        file_put_contents($file, '[]');
    }
}

// 注册开发者
function registerDeveloper($username, $reason) {
    // 读取现有开发者
    $kfs = file_exists(KFS_FILE) ? json_decode(file_get_contents(KFS_FILE), true) : [];
    
    // 生成鉴权ID
    $authId = bin2hex(random_bytes(16));
    $regTime = date('Y-m-d H:i:s');
    
    // 添加开发者信息
    $kfs[$username] = [
        'auth_id' => $authId,
        'reg_time' => $regTime
    ];
    
    file_put_contents(KFS_FILE, json_encode($kfs, JSON_PRETTY_PRINT));
    
    // 保存注册理由
    $kfly = file_exists(KFLY_FILE) ? json_decode(file_get_contents(KFLY_FILE), true) : [];
    $kfly[$username] = [
        'reason' => $reason,
        'timestamp' => $regTime
    ];
    file_put_contents(KFLY_FILE, json_encode($kfly, JSON_PRETTY_PRINT));
    
    // 初始化API计数器
    $kfit = file_exists(KFIT_FILE) ? json_decode(file_get_contents(KFIT_FILE), true) : [];
    $kfit[$username] = 0;
    file_put_contents(KFIT_FILE, json_encode($kfit, JSON_PRETTY_PRINT));
    
    return true;
}

// 获取开发者信息
function getDeveloperInfo($username) {
    $kfs = file_exists(KFS_FILE) ? json_decode(file_get_contents(KFS_FILE), true) : [];
    return $kfs[$username] ?? null;
}

// 更新API调用计数
function updateAPICount($username) {
    $kfit = file_exists(KFIT_FILE) ? json_decode(file_get_contents(KFIT_FILE), true) : [];
    $kfit[$username] = ($kfit[$username] ?? 0) + 1;
    file_put_contents(KFIT_FILE, json_encode($kfit, JSON_PRETTY_PRINT));
    return $kfit[$username];
}

// 获取API调用计数
function getAPICount($username) {
    $kfit = file_exists(KFIT_FILE) ? json_decode(file_get_contents(KFIT_FILE), true) : [];
    return $kfit[$username] ?? 0;
}